﻿using XsqTech.SmartOA.Domain.Table;
using XsqTech.SmartOA.Dtos.DTO;
using XsqTech.SmartOA.Dtos.XSPDto.FromDto;
using XsqTech.SmartOA.Service.DTO;

namespace XsqTech.SmartOA.IService
{
    /// <summary>
    /// 部门服务接口
    /// </summary>
    public interface IDepartmentService
    {
        /// <summary>
        /// 部门添加
        /// </summary>
        /// <param name="department"></param>
        /// <returns></returns>
        MsgResponse<AddDepartmentsDto> Add(AddDepartmentsDto department);
        /// <summary>
        /// 部门分页显示
        /// </summary>
        /// <param name="departmentPageDto"></param>
        /// <returns></returns>
        PageList<DepartmentDto> DShow(DepartmentPageDto departmentPageDto);
        /// <summary>
        /// 部门树形的显示
        /// </summary>
        /// <returns></returns>
        public List<Department> GetDepartTree();
        /// <summary>
        /// 返填数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Department GIt(Guid id);
        /// <summary>
        /// 部门修改
        /// </summary>
        /// <param name="department"></param>
        /// <returns></returns>
        MsgResponse<UptDepartmentsDto> Update(UptDepartmentsDto department);
        /// <summary>
        /// 部门添加角色
        /// </summary>
        /// <param name="depId"></param>
        /// <param name="uId"></param>
        /// <returns></returns>
        int AddDepartmentsUser(AddDepartmentsUsersDto addDepartmentsUsersDto);
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        ResponseModel Del(string id);

        /// <summary>
        /// 部门添加用户
        /// </summary>
        /// <param name="addDepartmentsUsersDto"></param>
        /// <returns></returns>
        ResponseModel AddDepartmentsUser1(AddDepartmentsUsersDto addDepartmentsUsersDto);
        /// <summary>
        /// 部门删除（批删）
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ResponseModel AllDepartmentDelete(List<DepartmentDto> dto);
    }
}
